package org.youyee.game.managers
{
	import org.youyee.game.utils.bitmapCacheUtils.BitmapCacheClipData;

	/**
	 * 位图数据缓存管理器 
	 * @author youyeelu
	 * 
	 */	
	public class BitmapCacheClipDataManager
	{
		private static var _clipData:Object;
		
		/**
		 * 通过ID获取一份缓存数据 
		 * @param id 数据的ID
		 * @return 获取到的数据
		 * 
		 */		
		public static function getClipDataById(id:String):BitmapCacheClipData
		{
			if (!_clipData)
			{
				return null;
			}
			
			return _clipData[id] as BitmapCacheClipData;
		}
		
		/**
		 * 添加一份数据到管理器 
		 * @param id 数据的ID
		 * @param data 数据
		 * 
		 */		
		public static function addClipData(id:String, data:BitmapCacheClipData):void
		{
			_clipData = _clipData || {};
			_clipData[id] = data;
		}
		
		/**
		 * 删除一份缓存数据 
		 * @param id 数据的ID
		 * @param disposeData 是否销毁数据
		 * 
		 */		
		public static function removeClipDataById(id:String, disposeData:Boolean=false):void
		{
			if (!_clipData)
			{
				return ;
			}
			
			var d:BitmapCacheClipData = _clipData[id] as BitmapCacheClipData;
			
			if (d)
			{
				delete _clipData[id];
				disposeData && d.dispose();
			}
		}
		
		/**
		 * 移除所有的数据 
		 * @param disposeData 是否要销毁数据
		 * 
		 */		
		public static function removeAllClipData(disposeData:Boolean=false):void
		{
			if (!_clipData)
			{
				return ;
			}
			
			if (disposeData)
			{
				var d:BitmapCacheClipData;
				for (var i:* in _clipData)
				{
					d = _clipData[i] as BitmapCacheClipData;
					d.dispose();
				}
			}
			
			_clipData = null;
		}
	}
}